package cz.stv.kucera_evzen_sen.auto;

import cz.stv.pecinovsky.správceplátna.IKreslený;
import cz.stv.pecinovsky.správceplátna.Kreslítko;
import cz.stv.pecinovsky.správceplátna.SprávcePlátna;

/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

/*******************************************************************************
 * Instance třídy {@code Auto4} představují ...
 *
 * @author    jméno autora
 * @version   0.00.000
 */
public class Auto4 implements IKreslený
{
    //== KONSTANTNÍ ATRIBUTY TŘÍDY =============================================
    private static final SprávcePlátna SP = SprávcePlátna.getInstance();

    //== PROMĚNNÉ ATRIBUTY TŘÍDY ===============================================
    private IAuto1 auto1;

    //== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ====================
    //== KONSTANTNÍ ATRIBUTY INSTANCÍ ==========================================
    //== PROMĚNNÉ ATRIBUTY INSTANCÍ ============================================
    //== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ====================================
    //== OSTATNÍ NESOUKROMÉ METODY TŘÍDY =======================================

    //##########################################################################
    //== KONSTRUKTORY A TOVÁRNÍ METODY =========================================

    /***************************************************************************
     *
     */
    public Auto4(int x, int y, int šířka, int výška)
    {
        auto1 = new Auto1V (x, y, šířka, výška);
    }


    //== ABSTRAKTNÍ METODY =====================================================
    //== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =================================
    //== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ====================================
    public void nakresli(Kreslítko kreslítko)
    {
        auto1.nakresli(kreslítko);
    }

    public void vpřed()
    {
        auto1.vpřed();
    }

    public void vlevoVbok()
    {
        auto1 = auto1.doleva();
        SP.překresli();
    }

    public void vpravoVbok()
    {
        auto1 = auto1.doprava();
        SP.překresli();
    }

    //== SOUKROMÉ A POMOCNÉ METODY TŘÍDY =======================================
    //== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ====================================
    //== INTERNÍ DATOVÉ TYPY ===================================================
    //== TESTOVACÍ METODY A TŘÍDY ==============================================
    //
    //     /********************************************************************
    //      * Testovací metoda.
    //      */
    //     public static void test()
    //     {
    //         Auto4 instance = new Auto4();
    //     }
    //     /** @param args Parametry příkazového řádku - nepoužívané. */
    //     public static void main(String[] args)  {  test();  }
}
